package com.quan.bookmall.service;

import com.quan.bookmall.dto.UserDTO;
import com.quan.bookmall.dto.request.ChangePasswordRequest;
import com.quan.bookmall.dto.request.RegisterRequest;
import com.quan.bookmall.dto.request.UpdateProfileRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface UserService {
    
    UserDTO findById(Long id);
    
    UserDTO findByUsername(String username);
    
    Page<UserDTO> findAll(Pageable pageable);
    
    UserDTO register(RegisterRequest registerRequest);
    
    boolean existsByUsername(String username);
    
    boolean existsByEmail(String email);
    
    UserDTO updateStatus(Long id, Integer status);
    
    UserDTO updateProfile(Long userId, UpdateProfileRequest request);
    
    void changePassword(Long userId, ChangePasswordRequest request);
} 